npm run dev 为什么会启动服务器
这个问题的实质是用 node 调用 http 模块启用了一个 web 服务器(webpack-dev-server 临时在本地开启一个 node 服务)
- 当执行
npm run dev后,npm会去package.json里边的scripts字段里找dev这个命令 - 如果配置了的话,就会执行对应的配置
vue-cli-service serve(vue-cli-service也是一个命令) 3.当npm的脚本执行的时候就会去执行当前项目目录下的node_modules/.bin/vue-cli-service.cmd这个文件 4.vue-cli-service.cmd这个文件又会用node执行@vue\cli-service\bin\vue-cli-service.js文件 5.vue-cli-service.js这个文件里加载着(两层加载)对应的命令处理文件(@vue\cli-service\bin\commands\serve.js文件写着可执行的命令) 6.然后你就会发现它加载了webpack-dev-server这个包(也就是说vue-cli-service是基于这个包实现的) 7.然后再看webpack-dev-server这个包,它又是基于express实现的 8.express又是一个node框架,它起的 web 服务器底层调用的实际是node的http这个核心模块 9.这时就出现一个调用链条
npm run dev->vue-cli-service serve->webpack-dev-server->express->node->http
vue-cli 2的配置少了vue-cli-service这层封装
参考文章:https://segmentfault.com/q/1010000020388384 https://juejin.cn/post/6971723285138505765